import { editPhoto, editProfile, userInfo, userProfile } from '@/api'
import { RootThunkAction } from '@/types/store'

// 获取用户资料
function userInfoAction(): RootThunkAction {
  return async (dispatch) => {
    // 调用接口
    const res = await userInfo()
    // 存到redux
    dispatch({
      type: 'profile/userinfo',
      payload: res.data.data,
    })
  }
}

// 获取用户信息
function userProfileAction(): RootThunkAction {
  return async (dispatch) => {
    // 调用接口
    const res = await userProfile()
    // 存到redux
    dispatch({
      type: 'profile/profile',
      payload: res.data.data,
    })
  }
}

// 修改用户信息
function editProfileAction(key: string, value: string): RootThunkAction {
  return async (dispatch) => {
    // 调用接口
    await editProfile(key, value)
    // console.log('res:', res)
    // 重新获取用户的数据
    await dispatch(userProfileAction())
  }
}

// 修改用户头像
function editPhotoAction(data: FormData): RootThunkAction {
  return async (dispatch) => {
    // 调用接口
    await editPhoto(data)
    // 重新获取用户的数据
    await dispatch(userProfileAction())
  }
}

export { userInfoAction, userProfileAction, editProfileAction, editPhotoAction }
